package com.caiheng.api.service.mer.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.caiheng.api.dao.mer.MerUserMapper;
import com.caiheng.api.dao.wxuser.UserMapper;
import com.caiheng.api.entity.mer.MerUser;
import com.caiheng.api.entity.wxuser.User;
import com.caiheng.api.service.base.impl.BaseServiceImpl;
import com.caiheng.api.service.mer.MerUserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 服务商家Service业务层处理
 *
 * @author ruoyi
 * @date 2021-09-05
 */
@Service
public class MerUserServiceImpl extends BaseServiceImpl<MerUserMapper, MerUser> implements MerUserService {

    @Resource
    private MerUserMapper merUserMapper;
    @Resource
    private UserMapper userMapper;

    @Override
    public List<MerUser> getMerUserList(int userId) {
        QueryWrapper<MerUser> qw = new QueryWrapper<>();
        qw.eq("user_id",userId);
        qw.eq("state",1);
        return merUserMapper.selectList(qw);
    }

    @Override
    public MerUser getMerUser(int userId) {
        QueryWrapper<MerUser> qw = new QueryWrapper<>();
        qw.eq("user_id",userId);
        qw.eq("state",1);
        qw.last("limit  1");
        return merUserMapper.selectOne(qw);
    }

    @Override
    public MerUser getDefaultMerUser(int userId) {
        QueryWrapper<MerUser> qw = new QueryWrapper<>();
        qw.eq("user_id",userId);
        qw.eq("is_default",1);
        qw.eq("state",1);
        qw.last("limit  1");
        return merUserMapper.selectOne(qw);
    }

    @Override
    public MerUser getMerByUser(int userId, int merId) {
        QueryWrapper<MerUser> qw = new QueryWrapper<>();
        qw.eq("user_id",userId);
        qw.eq("mer_id",merId);
        qw.eq("state",1);
        qw.last("limit  1");
        return merUserMapper.selectOne(qw);
    }

    @Override
    public User getMerAdminByUser(int merId) {
        QueryWrapper<MerUser> qw = new QueryWrapper<>();
        qw.eq("mer_id",merId);
        qw.eq("state",1);
        qw.eq("is_admin",1);
        qw.gt("user_id",0);
        qw.last("limit  1");
        MerUser merUser = merUserMapper.selectOne(qw);
        if(merUser!=null){
           User user  = userMapper.selectById(merUser.getUserId());
           return user;
        }
        return  null;
    }
}
